package cn.topevery.garden.entity.po;

import cn.topevery.garden.framework.base.BaseEntity;
import hw.topevery.framework.annotation.DbTable;
import hw.topevery.framework.annotation.DbTableField;
import hw.topevery.framework.enums.DbTypeEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 项目合同表
 *
 * @author code-generate
 * @date 2022-11-02
 */
@Data
@DbTable(tableName = "t_proj_contract")
public class ProjContract extends BaseEntity {
    /**
     * 合同ID
     */
    @DbTableField(columnName = "c_contract_id", dbType = DbTypeEnum.VARCHAR)
    public String contractId;

    /**
     * 项目ID
     */
    @DbTableField(columnName = "c_proj_id", dbType = DbTypeEnum.VARCHAR)
    public String projId;

    /**
     * 合同名称
     */
    @DbTableField(columnName = "c_contract_name", dbType = DbTypeEnum.VARCHAR)
    public String contractName;

    /**
     * 合同类型(施工、监理、设计、咨询、采购)
     */
    @DbTableField(columnName = "c_contract_type", dbType = DbTypeEnum.VARCHAR)
    public String contractType;

    /**
     * 合同甲方名称
     */
    @DbTableField(columnName = "c_contract_a_dept_name", dbType = DbTypeEnum.VARCHAR)
    public String contractADeptName;

    /**
     * 合同甲方联系人
     */
    @DbTableField(columnName = "c_contract_a_person_name", dbType = DbTypeEnum.VARCHAR)
    public String contractAPersonName;

    /**
     * 合同甲方联系电话
     */
    @DbTableField(columnName = "c_contract_a_phone", dbType = DbTypeEnum.VARCHAR)
    public String contractAPhone;

    /**
     * 合同甲方联系地址
     */
    @DbTableField(columnName = "c_contract_a_address", dbType = DbTypeEnum.VARCHAR)
    public String contractAAddress;

    /**
     * 合同乙方名称
     */
    @DbTableField(columnName = "c_contract_b_dept_name", dbType = DbTypeEnum.VARCHAR)
    public String contractBDeptName;

    /**
     * 合同乙方联系人
     */
    @DbTableField(columnName = "c_contract_b_person_name", dbType = DbTypeEnum.VARCHAR)
    public String contractBPersonName;

    /**
     * 合同乙方联系电话
     */
    @DbTableField(columnName = "c_contract_b_phone", dbType = DbTypeEnum.VARCHAR)
    public String contractBPhone;

    /**
     * 合同乙方联系地址
     */
    @DbTableField(columnName = "c_contract_b_address", dbType = DbTypeEnum.VARCHAR)
    public String contractBAddress;

    /**
     * 合同丙方名称
     */
    @DbTableField(columnName = "c_contract_c_dept_name", dbType = DbTypeEnum.VARCHAR)
    public String contractCDeptName;

    /**
     * 合同丙方联系人
     */
    @DbTableField(columnName = "c_contract_c_person_name", dbType = DbTypeEnum.VARCHAR)
    public String contractCPersonName;

    /**
     * 合同丙方联系电话
     */
    @DbTableField(columnName = "c_contract_c_phone", dbType = DbTypeEnum.VARCHAR)
    public String contractCPhone;

    /**
     * 合同丙方联系地址
     */
    @DbTableField(columnName = "c_contract_c_address", dbType = DbTypeEnum.VARCHAR)
    public String contractCAddress;

    /**
     * 合同价格（万元）
     */
    @DbTableField(columnName = "c_contract_money", dbType = DbTypeEnum.DECIMAL)
    public BigDecimal contractMoney;

    /**
     * 审定价（万元）
     */
    @DbTableField(columnName = "c_approved_money", dbType = DbTypeEnum.DECIMAL)
    public BigDecimal approvedMoney;

    /**
     * 已支付金额（元）
     */
    @DbTableField(columnName = "c_already_pay_money", dbType = DbTypeEnum.DECIMAL)
    public BigDecimal alreadyPayMoney;

    /**
     * 合同签订日期
     */
    @DbTableField(columnName = "c_contract_sign_date", dbType = DbTypeEnum.DATE)
    public LocalDate contractSignDate;

    /**
     * 预计验收时间
     */
    @DbTableField(columnName = "c_estimate_check_date", dbType = DbTypeEnum.DATE)
    public LocalDate estimateCheckDate;

    /**
     * 合同开工日期
     */
    @DbTableField(columnName = "c_contract_start_date", dbType = DbTypeEnum.DATE)
    public LocalDate contractStartDate;

    /**
     * 合同竣工日期
     */
    @DbTableField(columnName = "c_contract_complete_date", dbType = DbTypeEnum.DATE)
    public LocalDate contractCompleteDate;

    /**
     * 实际开工日期
     */
    @DbTableField(columnName = "c_real_start_date", dbType = DbTypeEnum.DATE)
    public LocalDate realStartDate;

    /**
     * 实际完工日期
     */
    @DbTableField(columnName = "c_real_complete_date", dbType = DbTypeEnum.DATE)
    public LocalDate realCompleteDate;

    /**
     * 合同生效开始时间
     */
    @DbTableField(columnName = "c_contract_begin_time", dbType = DbTypeEnum.TIMESTAMP)
    public LocalDateTime contractBeginTime;

    /**
     * 合同有效结束时间
     */
    @DbTableField(columnName = "c_contract_end_time", dbType = DbTypeEnum.TIMESTAMP)
    public LocalDateTime contractEndTime;

    /**
     * 合同当前状态( 1有效 0 无效)
     */
    @DbTableField(columnName = "c_contract_state", dbType = DbTypeEnum.INTEGER)
    public Integer contractState;

    /**
     * 备注
     */
    @DbTableField(columnName = "c_remark", dbType = DbTypeEnum.VARCHAR)
    public String remark;

    /**
     * 排序号
     */
    @DbTableField(columnName = "c_order_num", dbType = DbTypeEnum.INTEGER)
    public Integer orderNum;

    /**
     * 合同金额计算方式
     */
    @DbTableField(columnName = "c_contract_money_calc_mode", dbType = DbTypeEnum.VARCHAR)
    public String contractMoneyCalcMode;

    /**
     * 付款条件
     */
    @DbTableField(columnName = "c_contract_payment_condition", dbType = DbTypeEnum.VARCHAR)
    public String contractPaymentCondition;

    /**
     * 经办人
     */
    @DbTableField(columnName = "c_operator", dbType = DbTypeEnum.VARCHAR)
    public String operator;
}

